import%20marimo%0A%0A__generated_with%20%3D%20%220.17.6%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22%2C%20auto_download%3D%5B%22html%22%2C%20%22ipynb%22%5D)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20pytz%0A%20%20%20%20import%20datetime%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20india_timezone%20%3D%20pytz.timezone(%22Asia%2FKolkata%22)%0A%20%20%20%20now%20%3D%20datetime.datetime.now(india_timezone)%0A%0A%20%20%20%20curr%20%3D%20now.strftime(%22%25Y-%25m-%25d%2C%20%25I%3A%25M%3A%25S%20%25p%20%25Z%22)%0A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20%23%20Week%20-%207%0A%0A%20%20%20%20**Submission%20Date%3A**%20%602025-11-12%2C%2023%3A59%20IST%60%0A%0A%20%20%20%20**Last%20Updated%3A**%20%60%7Bcurr%7D%60%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20from%20sklearn.datasets%20import%20(%0A%20%20%20%20%20%20%20%20fetch_california_housing%2C%0A%20%20%20%20%20%20%20%20load_iris%2C%0A%20%20%20%20%20%20%20%20fetch_20newsgroups%2C%0A%20%20%20%20)%0A%20%20%20%20from%20sklearn.model_selection%20import%20train_test_split%0A%20%20%20%20from%20sklearn.linear_model%20import%20LinearRegression%2C%20LogisticRegression%0A%20%20%20%20from%20sklearn.tree%20import%20DecisionTreeRegressor%0A%20%20%20%20from%20sklearn.ensemble%20import%20AdaBoostRegressor%0A%20%20%20%20from%20sklearn.metrics%20import%20(%0A%20%20%20%20%20%20%20%20r2_score%2C%0A%20%20%20%20%20%20%20%20root_mean_squared_error%2C%0A%20%20%20%20%20%20%20%20confusion_matrix%2C%0A%20%20%20%20%20%20%20%20classification_report%2C%0A%20%20%20%20)%0A%20%20%20%20from%20sklearn.feature_extraction.text%20import%20TfidfVectorizer%0A%20%20%20%20from%20sklearn.naive_bayes%20import%20MultinomialNB%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20AdaBoostRegressor%2C%0A%20%20%20%20%20%20%20%20DecisionTreeRegressor%2C%0A%20%20%20%20%20%20%20%20LinearRegression%2C%0A%20%20%20%20%20%20%20%20LogisticRegression%2C%0A%20%20%20%20%20%20%20%20MultinomialNB%2C%0A%20%20%20%20%20%20%20%20TfidfVectorizer%2C%0A%20%20%20%20%20%20%20%20classification_report%2C%0A%20%20%20%20%20%20%20%20confusion_matrix%2C%0A%20%20%20%20%20%20%20%20fetch_20newsgroups%2C%0A%20%20%20%20%20%20%20%20fetch_california_housing%2C%0A%20%20%20%20%20%20%20%20load_iris%2C%0A%20%20%20%20%20%20%20%20r2_score%2C%0A%20%20%20%20%20%20%20%20root_mean_squared_error%2C%0A%20%20%20%20%20%20%20%20train_test_split%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Question%201%0A%0A%20%20%20%20Load%20the%20%60fetch_california_housing%60%20dataset%20from%20sklearn.%20Split%20the%20data%20using%20train_test_split%20with%20%60test_size%20%3D%200.2%60%20and%20**random_state%20as%201**.%20Train%20the%20following%20models%20using%20the%20training%20data%20and%20calculate%20the%20**R2%20Score**%20and%20**Root%20Mean%20Squared%20Error%20(RMSE)**%20on%20the%20test%20data.%0A%0A%20%20%20%20-%20Model%201%3A%20Linear%20Regression%0A%20%20%20%20-%20Model%202%3A%20AdaBoost%20Regressor%20with%20%60random%20state%20%3D%201%60%0A%20%20%20%20-%20Model%203%3A%20Decision%20Tree%20Regressor%20with%20%60random%20state%20%3D%201%60%0A%0A%20%20%20%20Choose%20the%20appropriate%20option%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(fetch_california_housing)%3A%0A%20%20%20%20X%2C%20y%20%3D%20fetch_california_housing(return_X_y%3DTrue%2C%20as_frame%3DTrue)%0A%20%20%20%20return%20X%2C%20y%0A%0A%0A%40app.cell%0Adef%20_(X%2C%20train_test_split%2C%20y)%3A%0A%20%20%20%20X_train%2C%20X_test%2C%20y_train%2C%20y_test%20%3D%20train_test_split(%0A%20%20%20%20%20%20%20%20X%2C%20y%2C%20test_size%3D0.2%2C%20random_state%3D1%0A%20%20%20%20)%0A%20%20%20%20return%20X_test%2C%20X_train%2C%20y_test%2C%20y_train%0A%0A%0A%40app.cell%0Adef%20_(AdaBoostRegressor%2C%20DecisionTreeRegressor%2C%20LinearRegression)%3A%0A%20%20%20%20lr%20%3D%20LinearRegression()%0A%20%20%20%20ada%20%3D%20AdaBoostRegressor(random_state%3D1)%0A%20%20%20%20dtr%20%3D%20DecisionTreeRegressor(random_state%3D1)%0A%20%20%20%20return%20ada%2C%20dtr%2C%20lr%0A%0A%0A%40app.cell%0Adef%20_(X_train%2C%20ada%2C%20dtr%2C%20lr%2C%20y_train)%3A%0A%20%20%20%20lr.fit(X_train%2C%20y_train)%0A%20%20%20%20ada.fit(X_train%2C%20y_train)%0A%20%20%20%20dtr.fit(X_train%2C%20y_train)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X_test%2C%20r2_score%2C%20root_mean_squared_error%2C%20y_test)%3A%0A%20%20%20%20def%20score(model%2C%20scoring%3D%22r2%22)%3A%0A%20%20%20%20%20%20%20%20metric%20%3D%20r2_score%0A%20%20%20%20%20%20%20%20if%20scoring%20%3D%3D%20%22rmse%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20metric%20%3D%20root_mean_squared_error%0A%0A%20%20%20%20%20%20%20%20return%20metric(y_test%2C%20model.predict(X_test))%0A%20%20%20%20return%20(score%2C)%0A%0A%0A%40app.cell%0Adef%20_(ada%2C%20dtr%2C%20lr%2C%20score)%3A%0A%20%20%20%20score(lr)%2C%20score(ada)%2C%20score(dtr)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ada%2C%20dtr%2C%20lr%2C%20score)%3A%0A%20%20%20%20(%0A%20%20%20%20%20%20%20%20score(lr%2C%20scoring%3D%22rmse%22)%2C%0A%20%20%20%20%20%20%20%20score(ada%2C%20scoring%3D%22rmse%22)%2C%0A%20%20%20%20%20%20%20%20score(dtr%2C%20scoring%3D%22rmse%22)%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Question%202%20-%203%0A%0A%20%20%20%20Load%20the%20Iris%20Dataset%20from%20sklearn.%20Split%20the%20data%20using%20train_test_split%20with%20test_size%20%3D%200.33%20and%20random_state%20as%201.%20Train%20the%20Logistic%20Regression%20model%20(with%20random%20state%20as%201)%20on%20the%20training%20data%20and%20make%20predictions%20on%20the%20test%20data.%20Print%20the%20confusion%20matrix%20and%20the%20classification%20report%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(load_iris)%3A%0A%20%20%20%20X2%2C%20y2%20%3D%20load_iris(as_frame%3DTrue%2C%20return_X_y%3DTrue)%0A%20%20%20%20return%20X2%2C%20y2%0A%0A%0A%40app.cell%0Adef%20_(X2%2C%20train_test_split%2C%20y2)%3A%0A%20%20%20%20X_train2%2C%20X_test2%2C%20y_train2%2C%20y_test2%20%3D%20train_test_split(%0A%20%20%20%20%20%20%20%20X2%2C%20y2%2C%20test_size%3D0.33%2C%20random_state%3D1%0A%20%20%20%20)%0A%20%20%20%20return%20X_test2%2C%20X_train2%2C%20y_test2%2C%20y_train2%0A%0A%0A%40app.cell%0Adef%20_(LogisticRegression%2C%20X_train2%2C%20y_train2)%3A%0A%20%20%20%20lgr%20%3D%20LogisticRegression(random_state%3D1)%0A%20%20%20%20lgr.fit(X_train2%2C%20y_train2)%0A%20%20%20%20return%20(lgr%2C)%0A%0A%0A%40app.cell%0Adef%20_(X_test2%2C%20classification_report%2C%20confusion_matrix%2C%20lgr%2C%20y_test2)%3A%0A%20%20%20%20_y_pred%20%3D%20lgr.predict(X_test2)%0A%0A%20%20%20%20print(%22Confusion%20Matrix%3A%5Cn%22%2C%20confusion_matrix(y_test2%2C%20_y_pred)%2C%20%22%5Cn%5Cn%22)%0A%20%20%20%20print(%22Classification%20Report%3A%5Cn%22%2C%20classification_report(y_test2%2C%20_y_pred))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Question%202%0A%0A%20%20%20%20How%20many%20samples%20has%20the%20model%20misclassified%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X_test2%2C%20lgr%2C%20y_test2)%3A%0A%20%20%20%20(lgr.predict(X_test2)%20!%3D%20y_test2).sum()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Question%203%0A%0A%20%20%20%20What%20is%20the%20recall%20for%20class%201%3F%20%5BAnswer%20to%20two%20decimal%20places%5D%20(Note%20that%20the%20classes%20are%200%20%2C%201%2C%202)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%0A%20%20%20%200.95%20(from%20above%20classfication%20report)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Question%204%20-%205%0A%0A%20%20%20%20Load%20the%20**train%20subset**%20of%20'20newsgroups'%20data%20with%20%60return_X_y%20%3D%20True%60.%20Vectorize%20X%20using%20TfidfVectorizer.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(fetch_20newsgroups)%3A%0A%20%20%20%20X3%2C%20y3%20%3D%20fetch_20newsgroups(subset%3D%22train%22%2C%20return_X_y%3DTrue)%0A%20%20%20%20return%20X3%2C%20y3%0A%0A%0A%40app.cell%0Adef%20_(X3%2C%20y3)%3A%0A%20%20%20%20X3%5B%3A100%5D%2C%20y3%5B%3A100%5D%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(TfidfVectorizer%2C%20X3)%3A%0A%20%20%20%20vec%20%3D%20TfidfVectorizer()%0A%20%20%20%20X3_tfidf%20%3D%20vec.fit_transform(X3)%0A%20%20%20%20return%20(X3_tfidf%2C)%0A%0A%0A%40app.cell%0Adef%20_(X3_tfidf)%3A%0A%20%20%20%20print(%22Shape%3A%22%2C%20X3_tfidf.shape)%0A%20%20%20%20print(%22Number%20of%20stored%20elements%20(non-zero)%3A%22%2C%20X3_tfidf.nnz)%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%22Sparsity%3A%20%7B%3A.2f%7D%25%22.format(%0A%20%20%20%20%20%20%20%20%20%20%20%20100%20*%20X3_tfidf.nnz%20%2F%20(X3_tfidf.shape%5B0%5D%20*%20X3_tfidf.shape%5B1%5D)%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Question%204%0A%0A%20%20%20%20Which%20of%20the%20following%20options%20represent%20the%20shape%20of%20the%20fitted%20and%20transformed%20data%20X%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X3_tfidf)%3A%0A%20%20%20%20X3_tfidf.shape%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Question%205%0A%0A%20%20%20%20Split%20the%20vectorized%20data%20and%20label%20into%20train%20and%20validation%20sets%20using%20%60train_test_split%60%20with%20%60test_size%20%3D%200.3%60%20and%20%60random_state%20%3D%201%60.%20Train%20a%20MultinomialNB%20model%20on%20the%20training%20dataset%20and%20compute%20the%20score%20on%20the%20validation%20set.%20Enter%20the%20score%20obtained.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X3_tfidf%2C%20train_test_split%2C%20y3)%3A%0A%20%20%20%20X_train3%2C%20X_test3%2C%20y_train3%2C%20y_test3%20%3D%20train_test_split(%0A%20%20%20%20%20%20%20%20X3_tfidf%2C%20y3%2C%20test_size%3D0.3%2C%20random_state%3D1%0A%20%20%20%20)%0A%20%20%20%20return%20X_test3%2C%20X_train3%2C%20y_test3%2C%20y_train3%0A%0A%0A%40app.cell%0Adef%20_(MultinomialNB%2C%20X_train3%2C%20y_train3)%3A%0A%20%20%20%20nmb%20%3D%20MultinomialNB()%0A%20%20%20%20nmb.fit(X_train3%2C%20y_train3)%0A%20%20%20%20return%20(nmb%2C)%0A%0A%0A%40app.cell%0Adef%20_(X_test3%2C%20nmb%2C%20y_test3)%3A%0A%20%20%20%20nmb.score(X_test3%2C%20y_test3)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
2afb0e23a87a215777116bb9097d8ebacfce65133e78b69c4323d80a2a07e1f2